package nil.ed.simulator.request.event;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import nil.ed.simulator.request.enums.events.EventMode;
import nil.ed.simulator.request.enums.events.EventType;

import java.util.Map;

/**
 * 事件对象.
 * @author lidelin.
 */
@Getter
@Builder
@AllArgsConstructor
public class Event {
    /**
     *  事件来源.
     */
    private final EventSource source;
    /**
     * 事件类型.
     */
    private final EventType eventType;
    /**
     * 事件处理模式.
     */
    private final EventMode eventMode;
    /**
     * 数据.
     */
    private final Object data;

    /**
     * 扩展字段.
     */
    private final Map<String, Object> extendMap;
}
